package api

import (
	"api-gateway/handler/response"
	"api-gateway/pkg"
	"fmt"
	"github.com/gin-gonic/gin"
	"log"
)

// 阿里云上传文件
func Upload(c *gin.Context) {
	// 单文件
	file, err := c.FormFile("file")
	if err != nil {
		response.Error(c, 400, "上传文件失败", err.Error())
		return
	}
	log.Println(file.Filename)

	dst := "D:\\gowork\\src\\hospital\\api-gateway\\upload\\img\\" + file.Filename
	// 上传文件至指定的完整文件路径
	c.SaveUploadedFile(file, dst)
	pkg.Upload(dst, file.Filename)
	response.Success(c, "ok", fmt.Sprintf("http://127.0.0.1:8080/img/")+file.Filename)
}

// MinioUpload
// @Summary      minio图片上传
// @Description  minio图片上传
// @Tags         图模块
// @Accept       json
// @Produce      json
// @Success      200  {object}  response.Response
// @Failure      400   {object}  response.Response
// @Router       /minio/minioUpload [post]
func MinioUpload(c *gin.Context) {
	file, err := c.FormFile("file")
	if err != nil {
		response.Error(c, 400, "上传文件失败", err.Error())
		return
	}
	// 临时本地路径，建议配置化
	dst := "D:\\gowork\\src\\hospital\\api-gateway\\upload\\img\\" + file.Filename
	if err = c.SaveUploadedFile(file, dst); err != nil {
		response.Error(c, 500, "保存文件到本地失败", err.Error())
		return
	}
	// 上传到 MinIO
	err = pkg.Minio(file.Filename, dst)
	if err != nil {
		response.Error(c, 500, "上传文件失败", err.Error())
		return
	}
	response.Success(c, fmt.Sprintf("http://127.0.0.1:8080/img/%s", file.Filename), "ok")
}
